package com.younion.business;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import com.younion.common.exception.BaseException;
import com.younion.common.paginator.Paginator;

import com.younion.vo.*;

/**
 * Bll类的接口
 */
public interface IMembercardServiceService {

	/**
	 * 查找所有数据库记录
	 * 
	 * @return type : Collection 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
	 */
    public Collection getAll() throws Exception;

	/**
	 * 根据主键查找符合条件的数据库记录
	 * 
	 * @param id
	 *            与数据库中主键对应的值
	 * @return type : MembercardServiceVO 返回查询操作所有符合条件的记录的VO对象，操作失败返回null
	 */
    public MembercardServiceVO getById(String id) throws Exception;

	/**
	 * 查找符合条件的所有数据库记录
	 * 
	 * @param paramMap
	 *            与数据库中记录对应的值对象
	 * @return type : Collection 返回查询操作所有符合条件的记录的VO对象集合，操作失败返回null
	 */
    public Collection getByMap(Map paramMap) throws BaseException;
	/**
	 * 获取记录数
	 * 
	 * @param paramMap
	 * @return
	 * @throws BaseException
	 */
	 public int getCountByMap(Map paramMap) throws BaseException;

		/**
		 * 分页查找
		 * 
		 * @param paramMap
		 * @param curPage
		 * @param pageSize
		 * @return
		 * @throws Exception
		 */
    public List get(Map paramMap, Paginator paginator) throws Exception;

    /**
	 * 向数据库中插入一条记录
	 * 
	 * @param voObject
	 *            与数据库中记录对应的值对象
	 * @return type : MembercardServiceVO 返回插入操作是否成功，操作失败返回null
	 */
    public MembercardServiceVO save(MembercardServiceVO voObject) throws Exception;
	/**
	 * 向数据库中插入一组记录
	 * 
	 * @param voList
	 *            与数据库中记录对应的值对象集合
	 * @return type : Collection 返回记录插入后返回的对象，对象带主键，操作失败返回null
	 */
    public Collection save(Collection voList) throws Exception;

	/**
	 * 删除符合条件的所有数据库记录
	 * 
	 * @param ids
	 *            数据库主键集合
	 * @return type : boolean 返回删除操做是否成功，操作失败返回false
	 */
    public boolean remove(List ids) throws Exception;

	/**
	 * 删除符合条件的所有数据库记录
	 * 
	 * @param paramMap
	 *            条件集合
	 * @return type : boolean 返回删除操做是否成功，操作失败返回false
	 */
    public boolean removeByMap(Map paramMap) throws Exception;
    
    public Collection selectBirthDayComes(Map paramMap) throws BaseException;
    public Collection selectNoRecharge(Map paramMap) throws BaseException;
    public Collection selectNoCost(Map paramMap) throws BaseException;
    public Collection selectLessRemain(Map paramMap) throws BaseException;
}